4589
13185
Odpovědi na tuto otázku představují úsilí komunity. Upravte stávající odpovědi a vylepšete tento příspěvek. V současné době nepřijímá nové odpovědi ani interakce.
Jak mohu přesměrovat uživatele z jedné stránky na druhou pomocí jQuery nebo čistého JavaScriptu? 
1
2
další
Nelze jednoduše přesměrovat pomocí jQuery
jQuery není nutné a window.location.replace (...) bude nejlépe simulovat přesměrování HTTP.
window.location.replace (...) je lepší než použití window.location.href, protože replace () nezachová původní stránku v historii relace, což znamená, že se uživatel nezasekne v nekonečném back- fialové tlačítko.
Pokud chcete někoho simulovat kliknutím na odkaz, použijte
location.href
Pokud chcete simulovat přesměrování HTTP, použijte location.replace
Například:
// podobné chování jako přesměrování HTTP
window.location.replace ("http://stackoverflow.com");
// podobné chování jako kliknutí na odkaz
window.location.href = "http://stackoverflow.com";
|
UPOZORNĚNÍ: Tato odpověď byla poskytnuta pouze jako možné řešení; zjevně to není nejlepší řešení, protože vyžaduje jQuery. Místo toho upřednostňujte čisté řešení JavaScriptu.
$ (location) .attr ('href', 'http://stackoverflow.com')
|
Standardní „vanilkový“ způsob JavaScript k přesměrování stránky
window.location.href = 'newPage.html';
Nebo jednodušeji: (protože okno je globální)
location.href = 'newPage.html';
Pokud jste zde, protože při přesměrování ztrácíte HTTP_REFERER, pokračujte ve čtení:
(Jinak tuto poslední část ignorujte)
Následující část je pro ty, kteří používají HTTP_REFERER jako jedno z mnoha bezpečnostních opatření (i když to není velké ochranné opatření). Pokud používáte Internet Explorer 8 nebo nižší, tyto proměnné se ztratí při použití jakékoli formy přesměrování stránky JavaScriptu (location.href atd.).
Níže budeme implementovat alternativu pro IE8 a nižší, abychom neztratili HTTP_REFERER. Jinak můžete téměř vždy jednoduše použít window.location.href.
Testování na HTTP_REFERER (vkládání URL, relace atd.) Může pomoci zjistit, zda je požadavek legitimní.
(Poznámka: Existují také způsoby, jak tyto referrery obejít / zfalšovat, jak je uvedeno v odkazu droop v komentářích)
Jednoduché řešení testování mezi prohlížeči (záložní k window.location.href pro Internet Explorer 9+ a všechny ostatní prohlížeče)
Použití: redirect ('anotherpage.aspx');
přesměrování funkce (url) {
var ua = navigator.userAgent.toLowerCase (),
isIE = ua.indexOf ('msie')! == -1,
verze = parseInt (ua.substr (4, 2), 10);
// Internet Explorer 8 a nižší
if (isIE && verze <9) {
var link = document.createElement ('a');
link.href = url;
document.body.appendChild (odkaz);
link.click ();
}
// Všechny ostatní prohlížeče mohou používat standardní window.location.href (neztrácejí HTTP_REFERER jako Internet Explorer 8 a nižší)
else {
window.location.href = url;
}
}
|
Existuje mnoho způsobů, jak toho dosáhnout.
// window.location
window.location.replace ('http://www.example.com')
window.location.assign ('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/ cesta'
// window.history
window.history.back ()
window.history.go (-1)
// window.navigate; POUZE pro staré verze aplikace Internet Explorer
window.navigate ('top.jsp')
// Pravděpodobně žádné bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';
// jQuery
$ (location) .attr ('href', 'http: //www.example.com')
$ (window) .attr ('location', 'http: //www.example.com')
$ (location) .prop ('href', 'http://www.example.com')
|
To funguje pro každý prohlížeč:
window.location.href = 'your_url';
|
Pomohlo by, kdybyste byli trochu popisnější v tom, co se snažíte udělat. Pokud se pokoušíte generovat stránkovaná data, existuje několik možností, jak to provést. Pro každou stránku, na kterou se chcete dostat přímo, můžete vygenerovat samostatné odkazy.
 1 
 2 
 3 
...
Upozorňujeme, že s aktuální stránkou v příkladu je v kódu a v CSS zacházeno odlišně.
Pokud chcete, aby se stránkovaná data změnila pomocí AJAX, právě sem by přišel jQuery. Co byste udělali, je přidat obslužný program kliknutí do každé značky ukotvení odpovídající jiné stránce. Tento obslužný program kliknutí by vyvolal nějaký kód jQuery, který jde a načte další stránku prostřednictvím AJAX a aktualizuje tabulku o nová data. Následující příklad předpokládá, že máte webovou službu, která vrací nová data stránky.
$ (document) .ready (function () {
$ ('a.pager-link'). click (function () {
var page = $ (this) .attr ('href'). split (/ \? /) [1];
$ .ajax ({
typ: 'POST',
url: '/ path-to-service',
data: stránka,
success: function (content) {
$ ('# myTable'). html (obsah); // nahradit
}
});
návrat false; // zastavit odkaz
});
});
|
Také si myslím, že location.replace (URL) je nejlepší způsob, ale pokud chcete upozornit vyhledávače na vaše přesměrování (neanalyzují kód JavaScript, aby viděli přesměrování), měli byste přidat metodu rel = "canonical" přidejte značku na svůj web.
Dobrým řešením je také přidání sekce noscript s metaznačkou HTML refresh. Doporučuji použít tento nástroj pro přesměrování JavaScriptu dovytvořit přesměrování. Má také podporu aplikace Internet Explorer, která předává referrer HTTP.
Ukázkový kód bez prodlení vypadá takto:







  



|
Pokud však někdo chce přesměrovat zpět na domovskou stránku, může použít následující úryvek.
window.location = window.location.host
Bylo by užitečné, pokud máte tři různá prostředí jako vývoj, staging a produkci.
Tento objekt window nebo window.location můžete prozkoumat pouhým vložením těchto slov do Chrome Console nebo Firebug's Console.
|
JavaScript poskytuje mnoho metod k načtení a změně aktuální adresy URL, která se zobrazuje v adresním řádku prohlížeče. Všechny tyto metody používají objekt Location, který je vlastností objektu Window. Nový objekt umístění, který má aktuální adresu URL, můžete vytvořit následujícím způsobem.
var currentLocation = window.location;
Základní struktura URL
//:/ 
Protokol - Určuje název protokolu, který se použije pro přístup k prostředku v Internetu. (HTTP (bez SSL) nebo HTTPS (s SSL))
název hostitele - název hostitele určuje hostitele, který vlastní prostředek. Například www.stackoverflow.com. Server poskytuje služby pomocí názvu hostitele.
port - Číslo portu, které se používá k rozpoznání konkrétního procesu, na který má být předána internetová nebo jiná síťová zpráva, když dorazí na server.
pathname - Cesta poskytuje informace o konkrétním prostředku v hostiteli, ke kterému chce webový klient přistupovat. Například stackoverflow.com/index.html.
dotaz - Řetězec dotazu sleduje komponentu cesty a poskytuje řetězec informací, které může prostředek využít k nějakému účelu (například jako parametry pro vyhledávání nebo jako data ke zpracování).
hash - kotevní část adresy URL, včetně znaku hash (#).
S těmito vlastnostmi objektu Location můžete přistupovat ke všem těmto komponentám URL
hash - Nastaví nebo vrátí kotevní část adresy URL.
hostitel - sady
nebo vrátí název hostitele a port adresy URL.
hostname -Sets or
vrací název hostitele adresy URL.
href - Nastaví nebo vrátí celou
URL.
pathname -Nastaví nebo vrátí název cesty URL.
port - Nastaví nebo vrátí číslo portu, který server používá pro URL.
protokol - Nastaví nebo vrátí protokol adresy URL.
hledat - Sady
nebo vrátí dotazovanou část adresy URL
Nyní Pokud chcete změnit stránku nebo přesměrovat uživatele na jinou stránku, můžete použít vlastnost href objektu Location takto
Můžete použít vlastnost href objektu Location.
window.location.href = "http://www.stackoverflow.com";
Location Object mají také tyto tři metody
assign () - Načte nový dokument.
reload () - Znovu načte aktuální dokument.
replace () - Nahradí aktuální dokument novým
K přesměrování na jiné podobné stránky můžete použít metody assign () a replace
location.assign ("http://www.stackoverflow.com");
location.replace ("http://www.stackoverflow.com");
Jak se liší assign () a replace () - Rozdíl mezi metodou replace () a assign () method () spočívá v tom, že replace () odstraní URL aktuálního dokumentu z historie dokumentu, což znamená, že není možné použít tlačítko „zpět“ pro návrat zpět k původnímu dokumentu. Pokud tedy chcete načíst nový dokument, použijte metodu assign () a chcete dát možnost přejít zpět k původnímu dokumentu.
Vlastnost href objektu umístění můžete změnit pomocí jQuery také takto
$ (location) .attr ('href', url);
A proto můžete uživatele přesměrovat na jinou adresu URL.
|
V podstatě je jQuery pouze rámec JavaScriptu a pro provádění některých věcí, jako je přesměrování, v tomto případě můžete použít pouze čistý JavaScript, takže v takovém případě máte 3 možnosti použití vanilkyJavaScript:
1) Pomocí funkce Nahradit místo nahradíte aktuální historii stránky, což znamená, že není možné pomocí tlačítka Zpět přejít zpět na původní stránku.
window.location.replace ("http://stackoverflow.com");
2) Použitím přiřazení polohy to udrží historii pro vás a pomocí tlačítka zpět se můžete vrátit na původní stránku:
window.location.assign ("http://stackoverflow.com");
3) Doporučuji použít jeden z těchto předchozích způsobů, ale může to být třetí možnost pomocí čistého JavaScriptu:
window.location.href = "http://stackoverflow.com";
Můžete také napsat funkci v jQuery, abyste ji zvládli, ale nedoporučuje se to, protože je to pouze jedna funkce čistého JavaScriptu, také můžete použít všechny výše uvedené funkce bez okna, pokud již jste v oboru okna, například window.location.replace („http://stackoverflow.com“); může být location.replace ("http://stackoverflow.com");
Také je všechny zobrazuji na obrázku níže:
|
Mělo by být možné nastavit pomocí window.location.
Příklad:
window.location = "https://stackoverflow.com/";
Zde je minulý příspěvek na toto téma: Jak mohu přesměrovat na jinou webovou stránku?
|
Než začnu, jQuery je knihovna JavaScriptu používaná pro manipulaci s DOM. Neměli byste tedy používat jQuery pro přesměrování stránky.
Citát z Jquery.com:
Zatímco jQuery může běžet bez větších problémů ve starších verzích prohlížeče,
jQuery v nich aktivně netestujeme a obecně neopravujeme chyby
které se v nich mohou objevit.
Nalezeno zde:
https://jquery.com/browser-support/
JQuery tedy není konečné řešení pro zpětnou kompatibilitu.
Následující řešení využívající surový JavaScript funguje ve všech prohlížečích a je již dlouhou dobu standardem, takže pro podporu různých prohlížečů nepotřebujete žádné knihovny.
Tato stránka bude přesměrována na Google po 3 000 milisekundách



 příklad 


Brzy budete přesměrováni na google.

Různé možnosti jsou následující: window.location.href = "url"; // Simuluje normální navigaci na novou stránku window.location.replace ("url"); // Odebere aktuální URL z historie a nahradí ji novou URL window.location.assign ("url"); // Přidá novou adresu URL do zásobníku historie a přesměruje na novou adresu URL window.history.back (); // Simuluje kliknutí na tlačítko Zpět window.history.go (-1); // Simuluje kliknutí na tlačítko Zpět window.history.back (-1); // Simuluje kliknutí na tlačítko Zpět window.navigate ("page.html"); // Stejné jako window.location = "url" Při použití nahrazení se tlačítko Zpět nevrátí zpět na stránku přesměrování, jako by nikdy nebylo v historii. Pokud chcete, aby se uživatel mohl vrátit na stránku s přesměrováním, použijte window.location.href nebo window.location.assign. Pokud použijete možnost, která uživateli umožní vrátit se na stránku přesměrování, nezapomeňte, že když zadáte stránku přesměrování, přesměruje vás zpět. Při výběru možnosti přesměrování to tedy vezměte v úvahu. Za podmínek, kdy stránka pouze přesměrovává, když uživatel provede akci, bude mít stránka v historii tlačítka Zpět v pořádku. Pokud se ale stránka automaticky přesměrovává, měli byste použít nahradit, aby uživatel mohl použít tlačítko Zpět, aniž by byl nucen zpět na stránku, kterou přesměrování odešle. Můžete také použít metadata ke spuštění přesměrování stránky následujícím způsobem. META Refresh Místo META Únos BASE Na této stránce najdete mnoho dalších metod k přesměrování vašeho nic netušícího klienta na stránku, na kterou možná nebudou chtít jít (ani jedna z nich není závislá na jQuery): https://code.google.com/p/html5security/wiki/RedirectionMethods Rád bych také upozornil, že lidé nemají rádi, když jsou náhodně přesměrováni. Přesměrovat lidi pouze tehdy, když je to nezbytně nutné. Pokud začnete náhodně přesměrovávat lidi, už se na váš web nikdy nedostanou. Další odstavec je hypotetický: Může se také stát, že budete nahlášeni jako nebezpečný web. Pokud k tomu dojde, pak když uživatelé kliknou na odkaz na váš web, může je prohlížeč uživatelů varovat, že je váš web škodlivý. Může se také stát, že vyhledávače začnou snižovat vaše hodnocení, pokud lidé na vašem webu hlásí špatnou zkušenost. Přečtěte si pokyny společnosti Google pro webmastery týkající se přesměrování: https://support.google.com/webmasters/answer/2721217?hl=cs&ref_topic=6001971 Zde je malá zábavná stránka, která vás ze stránky vykope. Odejít

Odejít

Pokud zkombinujete dva příklady stránek dohromady, vytvořila by se dětská smyčka, která by to přesměrovalazaručí, že váš uživatel už nikdy nebude chtít váš web používat. | var url = 'asdf.html'; window.location.href = url; | Můžete to udělat bez jQuery jako: window.location = "http://yourdomain.com"; A pokud chcete jen jQuery, můžete to udělat jako: $ jq (okno) .attr ("umístění", "http://yourdomain.com"); | Toto funguje s jQuery: $ (window) .attr ("location", "http://google.fr"); | # Přesměrování stránky HTML pomocí metody jQuery / JavaScript Zkuste tento příklad kódu: funkce YourJavaScriptFunction () { var i = $ ('# přihlášení'). val (); if (i == 'přihlášení') window.location = "Login.php"; jiný window.location = "Logout.php"; } Pokud chcete zadat úplnou adresu URL jako window.location = "www.google.co.in" ;. | Původní otázka: „Jak přesměrovat pomocí jQuery?“, Proto odpověď implementuje jQuery >> Případ bezplatného použití. Přesměrování na stránku pomocí JavaScriptu: window.location.href = "/ kontakt /"; Nebo pokud potřebujete zpoždění: setTimeout (funkce () { window.location.href = "/ kontakt /"; }, 2000); // Čas v milisekundách jQuery umožňuje snadný výběr prvků z webové stránky. Na stránce najdete vše, co chcete, a poté pomocí jQuery přidejte speciální efekty, reagujte na akce uživatelů nebo zobrazte a skryjte obsah uvnitř nebo vně vybraného prvku. Všechny tyto úkoly začínají vědomím, jak vybrat prvek nebo událost. $ ('a, img'). on ('click', function (e) { e.preventDefault (); $ (this) .animate ({ neprůhlednost: 0 // Sem vložte animaci CSS }, 500); setTimeout (funkce () { // Dobře, hotový personál jQuery, pojďme přesměrovat window.location.href = "/ kontakt /"; }, 500); }); Představte si, že někdo napsal skript / plugin s 10 000 řádky kódu. S jQuery se k tomuto kódu můžete připojit pouze pomocí jedné nebo dvou linek. | Musíte zadat tento řádek do svého kódu: $ (location) .attr ("href", "http://stackoverflow.com"); Pokud nemáte jQuery, použijte JavaScript: window.location.replace ("http://stackoverflow.com"); window.location.href ("http://stackoverflow.com"); | Otázkou tedy je, jak vytvořit stránku s přesměrováním, a ne jak přesměrovat na web? K tomu musíte použít pouze JavaScript. Zde je malý kód, který vytvoří stránku s dynamickým přesměrováním. Řekněme tedy, že jste tento fragment vložili do souboru redirect / index.html na svém webu, můžete jej tak použít. http://www.mywebsite.com/redirect?url=http://stackoverflow.com A pokud přejdete na tento odkaz, automaticky vás přesměruje na stackoverflow.com. Odkaz na dokumentaci A tak vytvoříte stránku s jednoduchým přesměrováním pomocí JavaScriptu Upravit: Je také třeba si uvědomit jednu věc. Do svého kódu jsem přidal window.location.replace, protože si myslím, že to vyhovuje přesměrovávací stránce, ale musíte vědět, že při použití window.location.replace a přesměrování, když stisknete tlačítko zpět v prohlížeči, nebude se vrátil na stránku s přesměrováním a vrátí se na stránku před ní, podívejte se na tuto malou ukázkovou věc. Příklad: Proces: store home => přesměrovat stránku na google => google Když na google: google => tlačítko Zpět v prohlížeči => uložit domov Pokud to tedy vyhovuje vašim potřebám, pak by mělo být vše v pořádku. Pokud chcete do historie prohlížeče zahrnout stránku s přesměrováním, nahraďte ji if (url) window.location.replace (url); s if (url) window.location.href = url; | Na funkci kliknutí stačí přidat: window.location.href = "URL, kam chcete přesměrovat"; $ ('# id'). click (function () { window.location.href = "http://www.google.com"; }); | Zkuste to: location.assign ("http://www.google.com"); Fragment kódu příkladu. | jQuery není potřeba. Můžeš to udělat: window.open ("URL", "_ self", "", "") Je to tak snadné! Nejlepší způsob, jak zahájit požadavek HTTP, je document.loacation.href.replace ('URL'). | Nejprve napište správně. Chcete v aplikaci přejít na další odkaz ze své aplikace na jiný odkaz. Zde je kód: window.location.href = "http://www.google.com"; A pokud chcete procházet stránky ve vaší aplikaci, mám také kód, pokud chcete. | V jQuery můžete přesměrovat takto: $ (location) .attr ('href', 'http://yourPage.com/'); | Pomocí JavaScriptu: Metoda 1: window.location.href = "http://google.com"; Metoda 2: window.location.replace ("http://google.com"); Používání jQuery: Metoda 1: $ (umístění) $ (location) .attr ('href', 'http://google.com'); Metoda 2: Opakovaně použitelná funkce jQuery.fn.redirectTo = funkce (url) { window.location.href = url; } jQuery (okno) .redirectTo ("http://google.com"); | V JavaScriptu a jQuery můžeme použít následující kód k přesměrování jedné stránky na jinou stránku: window.location.href = "http://google.com"; window.location.replace ("page1.html"); | ECMAScript 6 + jQuery, 85 bajtů $ ({jQueryCode: (url) => location.replace (url)}). attr ("jQueryCode") ("http://example.com") Prosím nezabíjejtejá, to je vtip. Je to vtip. Tohle je vtip. To „poskytlo odpověď na otázku“ v tom smyslu, že požadovalo řešení „pomocí jQuery“, které v tomto případě znamená nějakým způsobem jej do rovnice přinutit. Ferrybig zjevně potřebuje vysvětlit vtip (stále vtipkuje, jsem si jist, že ve formuláři pro kontrolu jsou omezené možnosti), takže bez dalších okolků: Jiné odpovědi zbytečně používají attr () jQuery na umístění nebo objekty okna. Tato odpověď to také zneužívá, ale směšnějším způsobem. Namísto použití k nastavení umístění to používá attr () k načtení funkce, která nastaví umístění. Funkce se jmenuje jQueryCode, i když na ní není nic jQuery a volání funkce somethingCode je prostě hrozné, zvláště když něco není ani jazyk. „85 bajtů“ je odkaz na Code Golf. Golf samozřejmě není něco, co byste měli dělat mimo kódový golf, a navíc tato odpověď zjevně není golfem. V zásadě se krčit. | Javascript: window.location.href = 'www.your_url.com'; window.top.location.href = 'www.your_url.com'; window.location.replace ('www.your_url.com'); Jquery: var url = 'www.your_url.com'; $ (location) .attr ('href', url); $ (location) .prop ('href', url); // místo umístění můžete použít okno | Zde je přesměrování s časovým zpožděním. Čas zpoždění můžete nastavit na cokoli chcete: Název dokumentu
Budete přesměrováni za 8 sekund!
| Existují tři hlavní způsoby, jak toho dosáhnout, window.location.href = 'blaah.com'; window.location.assign ('blaah.com'); a... window.location.replace ('blaah.com'); Poslední je nejlepší pro tradiční přesměrování, protože neuloží stránku, na kterou jste šli, než bude přesměrován v historii vyhledávání. Pokud však chcete otevřít kartu pouze pomocí JavaScriptu, můžete použít kterýkoli z výše uvedených postupů EDIT: Předpona okna je volitelná. | 1 2 další Toto není odpověď, kterou hledáte? Přečtěte si další otázky týkající se značek javascript jquery redirect nebo položte vlastní otázku.